<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://shiro.apache.org/tags" prefix="shiro" %>
<!DOCTYPE HTML>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" 
	+ request.getServerPort() + path + "/";
%>
<html>
<head>
<base href="<%=basePath%>"/> <!-- 设置页面的基本路径，页面所有资源引入和页面跳转都济源bathPath -->

<meta charset="utf-8">
<meta name="renderer" content="webkit|ie-comp|ie-stand">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<link rel="Bookmark" href="/favicon.ico" >
<link rel="Shortcut Icon" href="/favicon.ico" />
<link rel="stylesheet" type="text/css" href="static/h-ui/css/H-ui.min.css" />
<link rel="stylesheet" type="text/css" href="static/h-ui.admin/css/H-ui.admin.css" />
<link rel="stylesheet" type="text/css" href="lib/Hui-iconfont/1.0.8/iconfont.css" />
<link rel="stylesheet" type="text/css" href="static/h-ui.admin/skin/default/skin.css" id="skin" />
<link rel="stylesheet" type="text/css" href="static/h-ui.admin/css/style.css" />
<!-- 引入bootstrap -->
<link rel="stylesheet" type="text/css" href="lib/bootstrap/css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="lib/bootstrap-table/bootstrap-table.min.css" />
<title>客户列表</title>
</head>
<body>
<nav class="breadcrumb">
	<i class="Hui-iconfont">&#xe67f;</i> 首页 <span class="c-gray en">&gt;</span> 
	客户管理 <span class="c-gray en">&gt;</span> 客户列表 
</nav>

<div class="page-container">
	<span id="toolbar" class="l">
		<shiro:hasPermission name="customer:batchdel">
			<a href="javascript:;" onclick="customer_batchdel()" class="btn btn-danger radius">
				<i class="Hui-iconfont">&#xe6e2;</i>
				 批量删除客户
			</a>
		</shiro:hasPermission>
		
		<shiro:hasPermission name="customer:insert">
			<a href="javascript:;" onclick="customer_add()" class="btn btn-primary radius">
				<i class="Hui-iconfont">&#xe600;</i> 
				添加客户
			</a>
		</shiro:hasPermission>
	</span>
	<!-- 把需要呈现的表格放进去 -->
	<table id="dataTable"></table>
</div>

<!--_footer 作为公共模版分离出去-->
<script type="text/javascript" src="lib/jquery/1.11.3/jquery.min.js"></script> 
<script type="text/javascript" src="lib/layer/2.4/layer.js"></script>
<script type="text/javascript" src="static/h-ui/js/H-ui.min.js"></script> 
<script type="text/javascript" src="static/h-ui.admin/js/H-ui.admin.js"></script> <!--/_footer 作为公共模版分离出去-->

<!--请在下方写此页面业务相关的脚本-->
<script type="text/javascript" src="lib/My97DatePicker/4.8/WdatePicker.js"></script> 
<script type="text/javascript" src="lib/datatables/1.10.0/jquery.dataTables.min.js"></script> 
<script type="text/javascript" src="lib/laypage/1.2/laypage.js"></script>
<script type="text/javascript" src="lib/bootstrap-table/bootstrap-table.min.js"></script>
<script type="text/javascript" src="lib/bootstrap-table/bootstrap-table-zh-CN.min.js"></script>

<script type="text/javascript">
	//文档加载完毕后执行匿名函数(以下代码使用bootstrap-table来呈现分页数据)
	$(function(){
		//1.初始化bootstrap-table
		$("#dataTable").bootstrapTable({
			url:"customer/list.do",
			method:"get",
			/*
			res: 后台分页对象PageInfo返回对应的json对象
			res.list : 结果集
			res.total : 总记录数
			*/
			responseHandler:function(res){
				var data = {rows:res.list, total:res.total};
				return data;
			},
			//设置ajax异步请求参数
			queryParams:function(params){  
				//console.log(params);  //打印调试
				// 重新组装需要返回的数据，以json格式返回
				var paramsData = {keywords:params.search,
								pageSize:params.limit,
								pageNum:params.offset/params.limit+1}
				return paramsData;
			},
			pagination:true,  //是否显示分页
			toolbar: "#toolbar",//顶部显示的工具条（添加和批量删除的）
			contentType: 'application/x-www-form-urlencoded',//条件搜索的时候ajax请求给后台数据的数据类型（条件搜索post提交必须设置）
			search: true,//是否显示搜索框
			pageNumber: 1,//默认的页面 第一页
			pageSize: 10,//默认的每页条数
			pageList:[5,10,25,50],//每页能显示的条数
			sidePagination: "server",//是否是服务器分页，每次请求都是对应的10条数据，下一页发送ajax请求
			paginationHAlign: 'right', //底部分页条
			showToggle: true, //是否显示详细视图和列表视图的切换按钮
			cardView: false, //是否显示详细视图
			showColumns: true, //是否显示所有的列
			showRefresh: true, //是否显示刷新按钮
			columns: [ //表格显示数据对应的表头设置，
				{ checkbox: true},//是否显示前台的复选框（多选）
				/*
					每列数据的表头的设置
					filed:返回json数据对应数据的key
					title:表头要显示的名
				*/
				{field: 'customerId',title: '编号'}, 
				{field: 'customerName',title: '客户姓名'}, 
				{field: 'phone',title: '客户电话'},
				{field: 'email',title: '客户邮箱'},
				{field: 'address',title: '客户联系地址'},
				{field: 'gender',title: '客户性别',formatter:genderFormatter},
				{field: 'remark',title: '备注信息'},
				{field: 'idCard',title: '客户身份证号'},
				{field: 'clerk',title: '业务员'},
				{field: 'region',title: '区间'},
				{
					field:'customerId',
					title:'操作',
					align:'center',
					formatter:operationFormatter
				}
			]
		});
	});
	
	function genderFormatter(value, row, index, field){
		//console.log(value, row, index, field);
		if(value == 1){
			return "男";
		} else if(value == 2){
			return "女";
		}
	}
	
	/* 格式化函数：用于返回html字符串（会自动渲染出效果）
	 * value: 当前列的值
	 * row:当前行的整个对象
	 * index: 索引的位置
	 * field: 字段名
	 */
	function operationFormatter(value, row, index, field){
		// 定义一个删除按钮
		var html = "<shiro:hasPermission name='customer:delete'>";
		html += "<span onclick='customer_del(" + value + ")' style='cursor:pointer; color:red;' class='glyphicon glyphicon-trash'></span>";
		html += "&nbsp;&nbsp;&nbsp;&nbsp;";
		html += "</shiro:hasPermission>";
		// 定义一个更新按钮
		html += "<shiro:hasPermission name='customer:update'>";
		html += "<span onclick='customer_update(" + value + ")' style='cursor:pointer; color:blue;' class='glyphicon glyphicon-pencil'></span>";
		html += "</shiro:hasPermission>";
		return html;
	}
	
</script>


<script type="text/javascript">

/*客户-增加*/
function customer_add(){
	//在这里面输入任何合法的js语句
	layer.open({
	  type: 2 //Page层类型
	  ,area: ['800px', $(window).height()-50+'px']
	  ,title: '新增客户'
	  ,shade: 0.6 //遮罩透明度
	  ,maxmin: true //允许全屏最小化
	  ,anim: 3 //0-6的动画形式，-1不开启
	  ,content: 'customer/edit.do'
	});
}

/*客户-更新*/
function customer_update(customerId){
	layer.open({
		type:2,
		area:['800px',$(window).height()-50+'px'],
		title:'更新客户',
		shade:'0.6',
		maxmin:true,
		anim:3,
		content:'customer/edit.do?customerId='+customerId  //这里把需要更新的customerId带过去
	});
}

/*客户-删除*/
function customer_del(customerId){
	layer.confirm("亲，您确定要删除此条数据？",{icon:3},function(){
		$.get("customer/delete.do?",{customerId:customerId},function(respData){
			console.log(respData);
			//删除完毕之后的提示，这里在显示的时候使用的是layer.layui.com的技术
			layer.msg(respData.msg,{icon:respData.code,time:1000},function(){
				if(respData.code == 1){
					//删除成功后刷新数据
					refreshTable();
				}
			});
		});
	});
}

/* 客户-批量删除 */
function customer_batchdel(){
	layer.confirm("亲，您确定要删除选中的数据？",{icon:3},function(){
		// 1.以json格式获取到所有被选中的数据
		var selectedData = $("#dataTable").bootstrapTable('getSelections');
		console.log(selectedData);
		// 2.将所有被选中数据的customerId提取出来组成一个数组
		var customerIds = new Array();
		for(var i = 0; i < selectedData.length; i++){
			customerIds[i] = selectedData[i].customerId;
		}
		// 3.将被选中的customerIds数组通过ajax传给后台（customerIds转成String之后传给后台）
		$.get("customer/batchdel.do",{customerIds:customerIds.toString()},function(respData){
			console.log(respData);
			//删除完毕之后的提示，这里在显示的时候使用的是layer.layui.com的技术
			layer.msg(respData.msg,{icon:respData.code,time:1000},function(){
				if(respData.code == 1){
					//删除成功后刷新数据
					refreshTable();
				}
			});
		});
	});
}

/* 刷新bootstrap-table的函数 */
function refreshTable(){
	$("#dataTable").bootstrapTable("refresh");
}

</script>
</body>
</html>
